<?php
/**
 * Controller de Cliente.
 *
 *
 * @filesource          
 * @copyright		
 * @link		http://www.pragmatia.com Pragmatia
 * @package		datagro
 * @subpackage	app.controllers
 * @version     1.1
 * @license		http://www.opensource.org/licenses/mit-license.php The MIT License
 * @author      Martin Radosta <mradosta@pragmatia.com>
 */


/**
 * Clase UsuariosController
 *
 * @package	    datagro
 * @subpackage	app.controllers
 */

class ClientesController extends AppController 
{ 
    var $name = "Clientes"; 
	var $uses = array("Usuario", "Dominio", "Cliente");

/**
 * Index.
 *
 */
	function index() 
	{
		if($this->Session->check('Sim')) {
			$sim = $this->Session->read('Sim');
			$this->data['Filtro']['Usuario-sim_id'] = $sim['Sim']['id'];
		}
		//else {
		//	$this->Session->setFlash('Debe seleccionar un Modulo antes de continuar.', 'error');
		//	$this->redirect("../sims/seleccionar", null, true);
		//}
    		
    		
		$usuario = $this->Session->read('Usuario');
		$this->data['Filtro']['Usuario-usuario_id'] = $usuario['Usuario']['id'];
		$condicion = $this->Filtro->generarCondicion($this->data['Filtro']);
		$this->paginate['conditions'] = $condicion;

		$this->set('grupos', $this->Usuario->Grupo->generateList(null, null, null, null, "{n}.Grupo.nombre"));
		$this->set('estados_seguridad', $this->Dominio->generateList(array("nombre"=>"estados_seguridad"), null, null, null, "{n}.Dominio.valor"));	$this->set('registros', $this->paginate());
	}

/**
 * View.
 *
 */
	function view($id = false) 
	{
		if ($id && is_numeric($id))
		{
			$this->set('estados_seguridad', $this->Dominio->generateList(array("nombre"=>"estados_seguridad"), null, null, null, "{n}.Dominio.valor"));
			$this->data = $this->Usuario->read(null, $id);
		}    
	}  
   
/**
 * Add.
 *
 */
	function add() {
		if($this->Session->check('Sim')) {
			$sim = $this->Session->read('Sim');
		}
		else {
			$this->Session->setFlash('Debe seleciconar un Modulo antes de continuar.', 'error');
			$this->redirect("../sims/seleccionar", null, true);
		}

		$this->Formato->formatearFechaHora();
		if(!empty($this->data) && isset($this->data['Usuario']['accion']) && ($this->data['Usuario']['accion'] == "grabar" || $this->data['Usuario']['accion'] == "cancelar")) {

			if ($this->data['Usuario']['accion'] == "grabar") {
				if($this->Usuario->create($this->data) && $this->Usuario->validates()) {
					$usuario = $this->Session->read('Usuario');
					$this->data['Usuario']['usuario_id'] = $usuario['Usuario']['id']; //le asigno el usuario padre
					$this->data['Usuario']['grupo_id'] = 3; //lo asigno al grupo de clientes
					$this->data['Usuario']['sim_id'] = $sim['Sim']['id'];
					if($this->Usuario->save($this->data))
						$this->Session->setFlash('El cliente se agrego correctamente.', 'ok');
					else
						$this->Session->setFlash('No fue posible agregar el nuevo cliente.', 'error');	

						$this->redirect("index", null, true);
				}
				else {
					$this->set('estados_seguridad', $this->Dominio->generateList(array("nombre"=>"estados_seguridad"), null, null, null, "{n}.Dominio.valor"));
					$this->set('sim', $sim);
				}
			}
			elseif($this->data['Usuario']['accion'] == "cancelar") {
				$this->redirect("index", null, true);
			}
		}
		else {
			$this->set('estados_seguridad', $this->Dominio->generateList(array("nombre"=>"estados_seguridad"), null, null, null, "{n}.Dominio.valor"));
			$this->set('sim', $sim);
		}
	}
/**
 * Edit.
 *
 */
	function edit($id) {
		if($this->Session->check('Sim')) {
			$sim = $this->Session->read('Sim');
		}
		else {
			$this->Session->setFlash('Debe seleccionar un Modulo antes de continuar.', 'error');
			$this->redirect("../sims/seleccionar", null, true);
		}

		if(!empty($this->data) && isset($this->data['Usuario']['accion']) && ($this->data['Usuario']['accion'] == "grabar" || $this->data['Usuario']['accion'] == "cancelar")) {

			if ($this->data['Usuario']['accion'] == "grabar") {
				$this->Formato->formatearFechaHora();
				if($this->Usuario->create($this->data) && $this->Usuario->validates()) {
					$this->data['Usuario']['sim_id'] = $sim['Sim']['id'];
					if($this->Usuario->save($this->data))
						$this->Session->setFlash('El cliente se actualizo correctamente.', 'ok');
					else
						$this->Session->setFlash('No fue posible actualizar el cliente.', 'error');	

						$this->redirect("index", null, true);
				}
				else {
					$this->set('estados_seguridad', $this->Dominio->generateList(array("nombre"=>"estados_seguridad"), null, null, null, "{n}.Dominio.valor"));
					$this->set('sim', $sim);
					$this->render('add', null, "clientes/add.ctp");
				}
			}
			elseif($this->data['Usuario']['accion'] == "cancelar") {
				$this->redirect("index", null, true);
			}
		}
		else {
			$this->data = $this->Cliente->read(null, $id);
			$this->set('estados_seguridad', $this->Dominio->generateList(array("nombre"=>"estados_seguridad"), null, null, null, "{n}.Dominio.valor"));
			$this->set('sim', $sim);

			$this->render("add");
		}
	}
} 

?>